use master
go
use TestDB
go
select*from [dbo].[ClassInfo]  --班级表
select*from [dbo].[CourseInfo] --课程表
select*from [dbo].[Scores]		--成绩表
select*from [dbo].[StuInfo]		--学生信息表

--统计每个班的男生数
select ClassId 班级,count(StuSex) 男生数 from [dbo].[StuInfo] where StuSex='男' group by ClassId

--统计每个班的男、女生数
select ClassId 班级,StuSex 性别,count(StuSex) 人数 from StuInfo group by ClassId,StuSex

--统计每个班的福建人数
select  ClassId 班级,count(StuProvince) 福建人数 from [dbo].[StuInfo] group by ClassId,StuProvince having StuProvince='福建省'

--统计每个班的各个省的总人数
select ClassId 班级,count(StuProvince)各个省的总人数  from [dbo].[StuInfo] group by ClassId,StuProvince 


--统计每个省的女生数
select StuProvince,count(StuSex) 女生数 from [dbo].[StuInfo] where StuSex='女' group by StuProvince 

--统计每个省的男、女生数
select StuProvince 省份,StuSex 性别,count(StuSex) 人数 from StuInfo group by StuProvince,stusex  

--统计每个学生的考试总分、平均分
select StuId ,sum(Score),count(Score) from [dbo].[Scores] group by StuId	

--统计出考试总分大于620的学生的考试总分
select StuId ,sum(Score) from [dbo].[Scores]  group by StuId having sum(Score)>620

--统计出每门考试成绩最高分和最低分
select CourseId,max(Score) 最高分,min(Score) 最低分 from [dbo].[Scores]  group by CourseId

--统计出每个学生的各门成绩的平均分
select StuId , CourseId,avg(Score) 平均分 from [dbo].[Scores] group by StuId ,CourseId